package com.yuji.aacar.core.cores.json;

/**
 * <li>Package:com.ttp.android_core</li>
 * <li>Author: lining</li>
 * <li>Date: 2017/2/20</li>
 * <li>Description: json处理类</li>
 */
public class CoreJsonHandler {
	
//	/**
//	 * 解析格式如 {"errorCode":"0","result":{"param1":22,"param2":"strValue"}}的Json字符串，讲结果存入response中
//	 * @param json 被解析的json字符串
//	 * @param cls  result 类型
//	 * @param response  存放返回信息
//	 */
//	public static <T> void jsonToObject(String json, Class<T> cls,CoreServiceResponse<T> response) {
//		T resultObject = null;
//
//		//获取result的结果
//		try{
//			resultObject = CoreJsonHandler.jsonToObject(json, cls);
//		} catch (Exception e) {
//			e.printStackTrace();
//			response.setMessage(CoreServiceMediator.Service_Return_JsonParseError_Desc);
//			response.setResultCode(CoreServiceMediator.Service_Return_JsonParseError);
//			return;
//		}
//		response.setResponse(resultObject);
//		response.setResultCode(CoreServiceMediator.Service_Return_Success);
//	}
//
//	/**
//	 * Josn List解析
//	 * 解析格式如 {"errorCode":"0","result":[{"param1":22,"param2":"strValue"}]}的Json字符串，讲结果存入response中
//	 * @param json 被解析的json字符串
//	 * @param type result 数组中元素的 类型
//	 * @param response  存放返回信息
//	 */
//	public static <T> void jsonToList(String json, Type type, CoreServiceResponse<List<T>> response) {
//		List<T> resultObject = null;
//
//		try {
//			resultObject = CoreJsonHandler.jsonToList(json, type);
//		} catch (Exception e) {
//			e.printStackTrace();
//			response.setMessage(CoreServiceMediator.Service_Return_JsonParseError_Desc);
//			response.setResultCode(CoreServiceMediator.Service_Return_JsonParseError);
//			return;
//		}
//		response.setResponse(resultObject);
//		response.setResultCode(CoreServiceMediator.Service_Return_Success);
//		return;
//	}
//
//	/**
//	 * 解析返回类型为boolean类型的jsonString
//	 * 格式：{"errorCode":"0","result":"1"}
//	 *
//	 * @param json 需要解析的json
//	 * @param response
//	 */
//	public static void jsonToBoolean(String json, CoreServiceResponse<Boolean> response) {
//		if(json != null){
//			if (json.equals("1")) {
//				response.setResponse(true);
//			} else {
//				response.setResponse(false);
//			}
//			response.setResultCode(CoreServiceMediator.Service_Return_Success);
//			return;
//		}else{
//			response.setMessage(CoreServiceMediator.Service_Return_JsonParseError_Desc);
//			response.setResultCode(CoreServiceMediator.Service_Return_JsonParseError);
//			LogUtil.e("json解析--","[CoreJsonHandler][jsonToBoolean]: json解析错误： result 获取失败");
//		}
//	}
//
//	/**
//	 * 解析返回类型为String类型的jsonString
//	 * 格式：{"errorCode":"0","result":"resultStr"}
//	 *
//	 * @param json 需要解析的json
//	 * @param response
//	 */
//	public static void jsonToString(String json, CoreServiceResponse<String> response) {
//		if(json != null){
//			response.setResponse(json);
//			response.setResultCode(CoreServiceMediator.Service_Return_Success);
//			return;
//		}else{
//			response.setMessage(CoreServiceMediator.Service_Return_JsonParseError_Desc);
//			response.setResultCode(CoreServiceMediator.Service_Return_JsonParseError);
//			LogUtil.e("json解析--","[CoreJsonHandler][jsonToString]: json解析错误： result 获取失败");
//		}
//	}
//
//
//	/**
//	 * 解析返回类型为boolean类型的jsonString
//	 * 格式{"errorCode":"0","result":0}
//	 *
//	 * @param json 需要解析的json
//	 * @param response
//	 */
//	public static void jsonToNumber(String json, CoreServiceResponse<Number> response) {
//		int num = -1;
//		num = Integer.parseInt(json);
//		if(num != -1){
//			response.setResponse(num);
//			response.setResultCode(CoreServiceMediator.Service_Return_Success);
//			return;
//		}else{
//			response.setMessage(CoreServiceMediator.Service_Return_JsonParseError_Desc);
//			response.setResultCode(CoreServiceMediator.Service_Return_JsonParseError);
//			LogUtil.e("json解析--","[CoreJsonHandler][jsonToNumber]: json解析错误： result 获取失败");
//		}
//	}
//
//	/**
//	 * json转对象
//	 *
//	 * @param json json字符串
//	 * @param obj  obj对象
//	 * @return
//	 */
//	public static <T> T jsonToObject(String json, Class<T> obj) {
//		return new Gson().fromJson(json, obj);
//	}
//
//	/**
//	 * 对象转json
//	 *
//	 * @param obj 对象
//	 * @return
//	 */
//	public static String objectToJson(Object obj) {
//		Gson gson = new Gson();
//		String jsonString = gson.toJson(obj);
//		return jsonString;
//	}
//
//	/**
//	 * json转List
//	 *
//	 * @param json json字符串
//	 * @return cls List 元素对象类型
//	 */
//	@SuppressWarnings("unchecked")
//	public static <T> List<T> jsonToList(String json, Class<T> cls) {
//		Gson gson = new Gson();
//		List<T> list = new ArrayList<T>();
//		ArrayList<?> temp = gson.fromJson(json, ArrayList.class);
//		for (int i = 0; i < temp.size(); i++) {
//			Map<String, Object> map = (Map<String, Object>) temp.get(i);
//			list.add((T) jsonToObject(new Gson().toJson(map), cls));
//		}
//		return list;
//	}
//
//	/**
//	 * json转List
//	 *
//	 * @param json json字符串
//	 * @param type List的数据类型
//	 * @return cls List 元素对象类型
//	 */
//	public static <T> List<T> jsonToList(String json, Type type) {
//		List<T> list = new Gson().fromJson(json, type);
//		return list;
//	}
}
